項目2---十次方項目開發---後臺--springcloud之初入江湖---07

ip攻擊是運維的解決的。

quartz:默認是多線程的,job是要處理的定時任務。job對象默認是單例的。

沒執行完畢則停掉。

cron表達式:http://cron.qqe2.com/

七位,周和日不能同時出現。

quartz:https://www.cnblogs.com/notably/p/10607839.html

JWT和單點登陸:一個servlet是一個session。

--------------------------------------------------------------------------反饋----------------------------------------------------------------------------------------

eureka和feign。

springboot和springcloud的版本對應關係:

----------------------------------------------------------02--------------------03----------------------------------------------------------------------------

Eureka:服務發現。

包括兩部分:Eureka Server和Eureka Client

----------------------------------------------------04-------------------------------------------------------------------------------------------------------

第一步:在父工程鎖定版本。

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.M9</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

者這個的意思式任意一個jar包扔到這裏面版本就鎖死了。

第二步:配置文件

server:
   port: 6868
eureka:
   client:
     register-with-eureka: false
     fetchRegistry: false
     service-url:
           defaultZone: http://127.0.0.1:${server.port}/eureak/

第三步:啓動類

第四步:訪問localhost:6868/

-------------------------------------------------05----------------------------------------------------------服務器的搭建-------------------------------

article客戶端的搭建:

第一步:

 <dependency>
		  <groupId>org.springframework.cloud</groupId>
		  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
	  </dependency>

第二步:寫配置文件

eureka:
   client:
     service-url:
           defaultZone: http://127.0.0.1:6868/eureka/

第三步:啓動類啓動

第四步:

可以跨域訪問。

-------------

註冊一個user微服務:

註冊base的微服務:

-----------------------------------------------------------------------------06-----------------------------------------------------------------------------------

服務之間的調用:Feign。

目的:在qa裏面調用base。

第一步:註冊qa到服務中心

第二步:在qa裏面導入feign

  <dependency>
		  <groupId>org.springframework.cloud</groupId>
		  <artifactId>spring-cloud-starter-openfeign</artifactId>
	  </dependency>

第三步:

注意那個名字就是微服務的名字。

調用這個方法:這個是base的。

注意一點:

以前1和2對上就可以了,用feign是不可以的。接口不看後面。

第四步:服務發現

第六步:測試。

這個是一個接口,壓根沒有實現類,我們去調用別人的。

	@GetMapping("/label/{labelId}")
	public Result findByLabelId(@PathVariable String labelId){
		Result result = baseClient.findById(labelId);
		return result;
	}

第七部:測試報錯。

解決辦法:https://www.cnblogs.com/jhwy/p/9772303.html

-----------------------------------------------------------------------------07-----------------------------------------------------------------------------------

負載均衡:springcloud給你做了。

-----------------------------------------------------------------------------08-----------------------------------------------------------------------------------

交友微服務的開發:

第一步:

建表語句:

-- auto-generated definition
create table tb_nofriend
(
  userid   varchar(20) not null
  comment '用戶ID',
  friendid varchar(20) not null
  comment '好友ID',
  primary key (userid, friendid)
);

第二步:

點擊

相互喜歡是islike。

取消喜歡的話幾步操作?

1.刪除好友

2.加非好友

3.不管是用戶id還是friendid送都是來自於tb_user。

a喜歡b就是 a多關注了一個人b多了一個粉絲。

原來就沒有關係直接不喜歡。

原本是好友刪掉了。a關注數-1,b的粉絲數-1.

第二步的邏輯具體還要看下文檔。

-----------------------------------------------------------------------------09-----------------------------------------------------------------------------------

第三步:搭建friend模塊。

寫yml文件。

server:
  port: 9010
spring:
  application:
    name: tensquare-friend
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.244.136:3306/tensquare_friend?serverTimezone=GMT%2B8&useSSL=false
    username: root
    password: 123456
  jpa:
    show-sql: true
    database: mysql
eureka:
  client:
    service-url:
      defaultZone: http://localhost:6868/eureka/
    fetchRegistry: true
  instance:
    prefer-ip-address: true #可以跨域訪問,不加的話只能本地訪問
jwt:
  config:
    key: itcast
    ttl: 3600000

寫啓動類:

@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
public class FriendApplication {
    public static void main(String[] args) {

        SpringApplication.run(FriendApplication.class,args);
    }

    @Bean
    public JwtUtil jwtUtil(){
        return new JwtUtil();
    }
}

拿過濾器的一套東西。

拿這個用戶。

-----------------------------------------------------------------------------10-----------------------------------------------------------------------------------

業務編寫:

1.添加好友:

聯合主鍵:

1表示聯合主鍵,其實1沒有起作用,2起作用了。

寫一系列方法:

-----------------------------------------------------------------------------11-----------------------------------------------------------------------------------

添加好友測試:略。

-----------------------------------------------------------------------------12-----------------------------------------------------------------------------------

添加非好友,原來就不是好友添加非好友。

拉黑:在個人中心的好友列表。

-----------------------------------------------------------------------------13-----------------------------------------------------------------------------------

用到feign了:粉絲和關注的更新。

第一步:user模塊更新粉絲數。

/**
	 * 更新好友粉絲數和用戶關注數
	 * @param userid
	 * @param friendid
	 */
	@PutMapping("/{userid}/{friendid}/{num}")
	public void updateFanscountAndFollowcount(@PathVariable("userid") String userid,@PathVariable("friendid") String friendid,@PathVariable("num") int num){

		userService.updateFanscountAndFollowcount(userid,friendid,num);
	}
@Transactional
	public void updateFanscountAndFollowcount( String userid, String friendid,int num) {

		userDao.updateFanscount(num,friendid);
		userDao.updateFollowcount(num,userid);
	}

這個代碼看下官方的代碼。

-----------------------------------------------------------------------------14-----------------------------------------------------------------------------------

微服務friend想用它。

-----------------------------------------------------------------------------15-----------------------------------------------------------------------------------

刪除好友:

@DeleteMapping("/{friendid}")
    public Result deleteFriend(@PathVariable("friendid")String friendid){
        //驗證是否登錄,並且拿到當前登錄的用戶的id
        Claims claims=(Claims)request.getAttribute("claims_user");
        if(claims==null ){
            //當前用戶沒有user角色
            return new Result(false,StatusCode.LOGINERROR,"權限不足");
        }
        //得到當前登錄用戶的id
        String userId = claims.getId();
        friendService.deleteFriend(userId,friendid);
        userClient.updateFanscountAndFollowcount(userId,friendid,-1);
        return new Result(true,StatusCode.OK,"刪除成功");
    }

-----------------------------------------------------------------------------16-----------------------------------------------------------------------------------

feign配置負載均衡:http://blog.itpub.net/31558358/viewspace-2565058/

發佈了304 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章