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/