1.SOA與微服務的差別
(1)soa架構(2個controller調用公共的service、dao層)的缺點
依賴於中心化服務發現機制;
因爲SOA採用SOAP協議(Http+XML),XML傳輸協議比較佔用寬帶,XML報文中有非常大
冗餘數據,所以微服務架構中以json輕量級方式代替xml傳輸;
soa管理非常混亂,缺少服務管理和治理設施不完善。
(2)微服務是從SOA演變過來的
2. SpringCloud中zuul網關
(1)首先在Eureka註冊中心註冊網關服務
eureka: client: service-url: defaultZone: http://localhost:8761/eureka/
(2)設置本身的配置
server: port: 8100 spring: application: name: service-zuul
(3)將其他服務的路徑配置在網關中,例如
zuul:
routes:
api-a:
path: /api-member/**
service-id: service-member
api-b:
path: /api-order/**
service-id: service-order
(4)在啓動項加註解
@EnableZuulProxy @EnableEurekaClient
(5)默認Eureka註冊中心和訂單服務已開啓,在瀏覽器直接訪問網關的端口加請求參數,例如
http://localhost:8100/api-order/getOrder,頁面結果是 訂單拿到了
@RestController public class OrderController { @GetMapping("getOrder") public String get(){ return "訂單拿到了"; } }
3. 註冊中心Eureka
(1)配置信息
eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ register-with-eureka: false server: enable-self-preservation: false (排除自己) spring: application: name: eureka server: port: 8761
(2)pom
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
(3)啓動加註解
@EnableEurekaServer
(4)訪問http://localhost:8761/,可以看到已註冊的服務 application
(5)SpringCloud支持3種註冊中心:Eureka、Consul、ZK
Dubbo支持ZK和redis
(6)參考圖解