javascript
springcloud配置文件上传大小_SpringCloud实战二-Nacos
引入
在微服務(wù)中,可能有很多服務(wù)消費者和服務(wù)提供者,我們需要維護(hù)這一部分的數(shù)據(jù)或者內(nèi)容(服務(wù)地址、端口、狀態(tài)),此時我們引入服務(wù)發(fā)現(xiàn)(Service Discovery)的概念。
簡易服務(wù)發(fā)現(xiàn):
我們在服務(wù)發(fā)現(xiàn)組件中記錄服務(wù)消費者和服務(wù)提供者的的相關(guān)信息,便于服務(wù)消費者來調(diào)用服務(wù)提供者,此時如果微服務(wù)特別多,難免給mysql造成壓力,此時我們做一個小的優(yōu)化,在消費者和組件之間加一個緩存,獲取調(diào)用者信息時,先從換從查找,再調(diào)用消費者。
此時雖然有了緩存,但是微服務(wù)的狀態(tài)我們無法實時提供,可能某一臺服務(wù)器“掛”了,組件無法知曉,則會出現(xiàn)無法響應(yīng)的問題,此時我們再做一個優(yōu)化,讓每一臺服務(wù)器給組件發(fā)送心跳,在組件中加一個字段,存儲這個心跳時間,如果很久沒有更新心跳,則將status變?yōu)镈OWN。
此時我們完成了一個較理想狀態(tài)的服務(wù)發(fā)現(xiàn)演變過程。
什么是Nacos
上述是服務(wù)發(fā)現(xiàn)的白話原理,我們可以使用現(xiàn)成的服務(wù)發(fā)現(xiàn)組件:Eureka(2.0不再維護(hù))、Nacos、Consul,下面著重了解Nacos詳細(xì)描述可以看Nacos官方文檔:https://nacos.io/zh-cn/docs/what-is-nacos.html簡單地說,nacos可以做兩件事:1.服務(wù)發(fā)現(xiàn)2.配置中心(類似于Spring Cloud Config)
搭建Nacos Serve
下載:https://github.com/alibaba/nacos/releases
下載nacos-server-1.2.1.zip解壓參考官方文檔,windows執(zhí)行
cmd startup.cmd -m standalone輸入用戶名密碼(都是):nacos
修改配置文件application.properties,加入自己安裝mysql引入依賴spring-boot-starter-security添加代碼生成加密后的密碼
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class Main {public static void main(String[] args) {System.out.println(new BCryptPasswordEncoder().encode("你的密碼"));} }將生成的加密字符串替換數(shù)據(jù)庫中的密碼即可完成修改密碼
登陸后:
將應(yīng)用注冊到Nacos
創(chuàng)建user-center項目
添加配置文件
spring:cloud:nacos:discovery:# 指定nacos server的地址server-addr: localhost:8848application:# 服務(wù)名稱盡量用-,不要用_,不要用特殊字符name: user-center server:port: 8081直接啟動即可,出現(xiàn)下圖注冊成功
創(chuàng)建content-center項目注冊到Nacos Server使用springCloud自帶的discoveryClient進(jìn)行測試(在注冊中心尋找user-center)
@RestController public class TestControl {@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/test")public List<ServiceInstance> test(){return discoveryClient.getInstances("user-center");} }上圖可以發(fā)現(xiàn)已經(jīng)成功找到user-center
啟動兩個user-center
拓展,通過java8獲取instances中uri的內(nèi)容并返回,可替換固定的鏈接
String url = instances.stream().map(instance->instance.getUri().toString()).findFirst().orElseThrow(()->new IllegalAccessException("沒有發(fā)現(xiàn)"));總結(jié)
上述已完成服務(wù)發(fā)現(xiàn)的功能,后續(xù)集群還可以設(shè)置領(lǐng)域模型(配置文件中配置namespace、group、service、cluster、instance),還可以設(shè)置元數(shù)據(jù)來控制版本。
后續(xù)上傳git代碼(現(xiàn)在的實例比較簡單)
欲知后事
后續(xù)介紹Ribbon實現(xiàn)負(fù)載均衡以及Feign進(jìn)行服務(wù)之間的調(diào)用
后續(xù)會持續(xù)更新,可以關(guān)注公眾號: 阿清的日常
后臺留言,會細(xì)致解答。
總結(jié)
以上是生活随笔為你收集整理的springcloud配置文件上传大小_SpringCloud实战二-Nacos的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中常用的序列化模块_Pyth
- 下一篇: redistemplate hash 过