欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:java Dubbo學(xué)習(xí)

柚子快報邀請碼778899分享:java Dubbo學(xué)習(xí)

http://yzkb.51969.com/

系列文章目錄

JavaSE基礎(chǔ)知識、數(shù)據(jù)類型學(xué)習(xí)萬年歷項目代碼邏輯訓(xùn)練習(xí)題代碼邏輯訓(xùn)練習(xí)題方法、數(shù)組學(xué)習(xí)圖書管理系統(tǒng)項目面向?qū)ο缶幊蹋悍庋b、繼承、多態(tài)學(xué)習(xí)封裝繼承多態(tài)習(xí)題常用類、包裝類、異常處理機制學(xué)習(xí)集合學(xué)習(xí)IO流、多線程學(xué)習(xí)倉庫管理系統(tǒng)JavaSE項目員工管理系統(tǒng)、多表查詢、反射實現(xiàn)DBHelper學(xué)習(xí)DML、DDL、數(shù)據(jù)庫對象學(xué)習(xí)JavaWeb網(wǎng)絡(luò)編程、各種標簽、CSS學(xué)習(xí)ECMAScript、BOM學(xué)習(xí)DOM、jQuery學(xué)習(xí)Servlet、JSP、Cookie、Ajax學(xué)習(xí)融資管理系統(tǒng)JavaWeb項目框架MyBatis框架學(xué)習(xí)逆向工程、Spring框架IOC、AOP學(xué)習(xí)SpringMVC框架學(xué)習(xí)SpringBoot框架學(xué)習(xí)招聘網(wǎng)站框架項目Vue介紹、窗體內(nèi)操作、窗體間操作學(xué)習(xí)Vue路由配置、網(wǎng)絡(luò)請求訪問框架項目、element組件介紹學(xué)習(xí)標準管理系統(tǒng)Vue項目微服務(wù)Linux安裝、Nginx反向代理、負載均衡學(xué)習(xí)Docker學(xué)習(xí)Jenkins學(xué)習(xí)Nexus學(xué)習(xí)Spring Security學(xué)習(xí)RabbitMQ學(xué)習(xí)Redis學(xué)習(xí)MongoDB學(xué)習(xí)MongoDB學(xué)習(xí)Nacos學(xué)習(xí)Spring Session學(xué)習(xí)Spring Gateway學(xué)習(xí)JSR 303學(xué)習(xí)OpenFeign學(xué)習(xí)Dubbo學(xué)習(xí)Hystrix學(xué)習(xí)

文章目錄

系列文章目錄前言一、Dubbo介紹1. Dubbo介紹2. Dubbo的主要特點和優(yōu)勢3. Dubbo與OpenFeign相比4. 項目架構(gòu)

二、Dubbo環(huán)境配置1. 啟動Nacos與Redis環(huán)境

三、創(chuàng)建dubboapi項目1. 創(chuàng)建Maven項目2. 添加依賴3. 創(chuàng)建Score實體類4. 創(chuàng)建ResultCode工具類5. 創(chuàng)建Result工具類6. 創(chuàng)建ScoreService接口7. 打包

四、創(chuàng)建dubboconsumer項目1. 創(chuàng)建Maven項目2. 添加依賴3. 創(chuàng)建SessionConfig配置類5. 創(chuàng)建User實體類6. 創(chuàng)建UserService接口7. 創(chuàng)建UserServiceImpl實現(xiàn)類9. 創(chuàng)建UserController控制器10. 創(chuàng)建SpringBootMain啟動類創(chuàng)建application.properties配置文件創(chuàng)建application.yml配置文件創(chuàng)建bootstrap.yml配置文件

五、創(chuàng)建dubboprovider項目1. 創(chuàng)建Maven項目2. 添加依賴3. 創(chuàng)建SessionConfig配置類4. 創(chuàng)建ScoreServiceImpl實現(xiàn)類5. 創(chuàng)建SpringBootMain啟動類6. 創(chuàng)建application.properties配置文件7. 創(chuàng)建application.yml配置文件8. 創(chuàng)建bootstrap.yml配置文件9. 啟動程序

總結(jié)

前言

本文我們要講述: Dubbo 在下攸攸太上,這是我的二維碼?。

一、Dubbo介紹

1. Dubbo介紹

Dubbo是一個開源的高性能微服務(wù)框架,由阿里巴巴開發(fā)并后來捐贈給了Apache基金會。它提供了一種高效、可靠的RPC(遠程過程調(diào)用)通信框架,用于構(gòu)建分布式的服務(wù)化架構(gòu)。

2. Dubbo的主要特點和優(yōu)勢

高性能:Dubbo通過優(yōu)化網(wǎng)絡(luò)通信、序列化、線程池等方面的機制,提供了高性能的服務(wù)調(diào)用能力,適用于高并發(fā)、低延遲的場景。 可擴展性:Dubbo支持多種協(xié)議、負載均衡、服務(wù)注冊與發(fā)現(xiàn)等擴展點,可以根據(jù)需求擴展和定制化。 高可用性:Dubbo提供了服務(wù)治理、負載均衡、故障轉(zhuǎn)移等機制,確保服務(wù)的高可用性和容錯能力。 透明化的遠程調(diào)用:Dubbo對服務(wù)調(diào)用進行了封裝,使得調(diào)用方無需關(guān)注底層的網(wǎng)絡(luò)通信細節(jié),可以像調(diào)用本地方法一樣調(diào)用遠程服務(wù)。 配置管理:Dubbo提供了豐富的配置管理功能,可以通過配置中心進行動態(tài)的配置管理和版本控制。 監(jiān)控和管理:Dubbo提供了豐富的監(jiān)控和管理功能,可以對服務(wù)進行監(jiān)控、統(tǒng)計和管理。

3. Dubbo與OpenFeign相比

與OpenFeign相比,Dubbo是基于RPC協(xié)議實現(xiàn)的微服務(wù)框架,而OpenFeign是基于HTTP請求的方式實現(xiàn)的。Dubbo的通信方式更加高效和靈活,適用于復(fù)雜的微服務(wù)場景。而OpenFeign是Spring官方提供的工具,更加簡潔易用,適合于快速開發(fā)和集成Spring Boot項目。

4. 項目架構(gòu)

在應(yīng)用Dubbo框架時,通常需要創(chuàng)建三個工程:API工程、消費者工程和提供者工程。API工程是共享的代碼庫,包含服務(wù)接口和共享的實體類等。消費者工程和提供者工程可以引用API工程,通過Dubbo框架實現(xiàn)服務(wù)的調(diào)用和提供。

二、Dubbo環(huán)境配置

1. 啟動Nacos與Redis環(huán)境

docker start nacos

docker start redis-6379

三、創(chuàng)建dubboapi項目

1. 創(chuàng)建Maven項目

2. 添加依賴

1.8

UTF-8

UTF-8

2.6.13

0.7.0

1.2.60

2.0.3.RELEASE

Finchley.SR2

com.alibaba

fastjson

${fastjson.version}

compile

org.projectlombok

lombok

1.18.24

compile

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

org.apache.tomcat.maven

tomcat7-maven-plugin

2.2

8080

/

org.springframework.boot

spring-boot-maven-plugin

2.1.10.RELEASE

true

3. 創(chuàng)建Score實體類

package com.jjy.entry;

import lombok.Data;

import java.io.Serializable;

@Data

public class Score implements Serializable {

private String name;

private Double score;

}

4. 創(chuàng)建ResultCode工具類

package com.jjy.util;

public enum ResultCode {

SUCCESS(0, "請求成功"),

ERROR(1, "請求失敗"),

;

private int code;

private String message;

ResultCode(int code, String message) {

this.code = code;

this.message = message;

}

public int getCode() {

return code;

}

public String getMessage() {

return message;

}

}

5. 創(chuàng)建Result工具類

package com.jjy.util;

import lombok.Data;

import java.util.HashMap;

import java.util.Map;

@Data

public class Result {

private Integer code;

private String message;

private Map map = new HashMap<>();

private Result() {

}

public static Result ok() {

Result r = new Result();

r.setCode(ResultCode.SUCCESS.getCode());

r.setMessage(ResultCode.SUCCESS.getMessage());

return r;

}

public static Result error() {

Result r = new Result();

r.setCode(ResultCode.ERROR.getCode());

r.setMessage(ResultCode.ERROR.getMessage());

return r;

}

public Result put(String key, Object value) {

map.put(key, value);

return this;

}

public Object get(String key) {

return map.get(key);

}

}

6. 創(chuàng)建ScoreService接口

package com.jjy.service;

import com.jjy.entry.Score;

import java.util.List;

public interface ScoreService {

public List getinfo();

}

7. 打包

可以拿到dubboapi-1.0-SNAPSHOT.jar文件

四、創(chuàng)建dubboconsumer項目

1. 創(chuàng)建Maven項目

2. 添加依賴

我們可以看到,依賴中導(dǎo)入了dubboapi項目的jar包,這樣我們就可以在此項目中使用dubboapi編寫的類

org.springframework.boot

spring-boot-starter-parent

2.0.7.RELEASE

1.8

UTF-8

UTF-8

2.6.13

0.7.0

1.2.60

2.0.3.RELEASE

Finchley.SR2

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

compile

org.projectlombok

lombok

com.alibaba

fastjson

${fastjson.version}

compile

org.springframework.session

spring-session-data-redis

org.springframework.boot

spring-boot-starter-data-redis

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

com.jjy

dubboapi

1.0-SNAPSHOT

com.alibaba.cloud

spring-cloud-starter-dubbo

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

exec

dubboapi-1.0-SNAPSHOT.jar可能爆紅,多導(dǎo)入幾次,實在不行就lib導(dǎo)入

com.jjy

dubboapi

1.0-SNAPSHOT

3. 創(chuàng)建SessionConfig配置類

package com.jjy.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;

import org.springframework.data.redis.serializer.RedisSerializer;

import org.springframework.session.web.http.CookieSerializer;

import org.springframework.session.web.http.DefaultCookieSerializer;

@Configuration

public class SessionConfig {

@Bean

public CookieSerializer cookieSerializer() {

DefaultCookieSerializer serializer = new DefaultCookieSerializer();

serializer.setCookieName("JSESSIONID");

serializer.setCookiePath("/");

serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");

return serializer;

}

@Bean

public RedisSerializer redisSerializer() {

return new GenericJackson2JsonRedisSerializer();

}

}

5. 創(chuàng)建User實體類

package com.jjy.entry;

import lombok.Data;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;

import org.springframework.stereotype.Component;

import java.util.List;

@Component

@Data

@EnableDubbo

public class User {

private String id;

private String name;

private String password;

private List scoreList;

}

6. 創(chuàng)建UserService接口

package com.jjy.service;

import com.jjy.entry.User;

public interface UserService {

public User getinfo();

}

7. 創(chuàng)建UserServiceImpl實現(xiàn)類

package com.jjy.service.impl;

import com.jjy.entry.Score;

import com.jjy.service.ScoreService;

import com.jjy.entry.User;

import com.jjy.service.UserService;

import org.apache.dubbo.config.annotation.Reference;

import org.apache.dubbo.config.annotation.Service;

import java.util.List;

@Service

public class UserServiceImpl implements UserService {

@Reference

private ScoreService scoreService;

@Override

public User getinfo() {

User user=new User();

user.setId("111");

user.setName("zhangsan");

user.setPassword("zs123");

List list=scoreService.getinfo();

user.setScoreList(list);

return user;

}

}

9. 創(chuàng)建UserController控制器

package com.jjy.controller;

import com.jjy.service.UserService;

import com.jjy.entry.User;

import com.jjy.util.Result;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping("/user")

public class UserController {

@Autowired

private UserService userService;

@GetMapping

public Result getinfo(){

User user = userService.getinfo();

return Result.ok().put("data",user);

}

}

10. 創(chuàng)建SpringBootMain啟動類

package com.jjy;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@SpringBootApplication

@EnableRedisHttpSession

public class SpringBootMain {

public static void main(String[] args) {

SpringApplication.run(SpringBootMain.class,args);

}

}

創(chuàng)建application.properties配置文件

spring.application.name=dubbocon

創(chuàng)建application.yml配置文件

server:

port: 100

spring:

session:

store-type: redis

dubbo:

registry:

address: nacos://192.168.81.186:8848

cloud:

subscribed-services: dubbopro #是要訪問的p工程的服務(wù)名

consumer:

check: false

創(chuàng)建bootstrap.yml配置文件

spring:

cloud:

nacos:

discovery:

server-addr: 192.168.81.186:8848

config:

server-addr: 192.168.81.186:8848

file-extension: yaml

namespace: 7e56a725-f51a-4603-b421-49add0ae9c4b # 命名空間ID,粘貼復(fù)制過來即可。

shared-configs:

- data-id: redissession1.yaml # 配置詳情內(nèi):Data ID,粘貼復(fù)制過來即可。

group: DEFAULT_GROUP # 配置詳情內(nèi):Group 粘貼復(fù)制過來即可。

inetutils:

preferred-networks: 192.168.56 # 服務(wù)管理內(nèi),public內(nèi)點擊詳情,可以查看,需要項目啟動后能查看,一般默認192.168.56

五、創(chuàng)建dubboprovider項目

1. 創(chuàng)建Maven項目

2. 添加依賴

org.springframework.boot

spring-boot-starter-parent

2.0.7.RELEASE

1.8

UTF-8

UTF-8

2.6.13

0.7.0

1.2.60

2.0.3.RELEASE

Finchley.SR2

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

compile

org.projectlombok

lombok

com.alibaba

fastjson

${fastjson.version}

compile

org.springframework.session

spring-session-data-redis

org.springframework.boot

spring-boot-starter-data-redis

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

com.jjy

dubboapi

1.0-SNAPSHOT

com.alibaba.cloud

spring-cloud-starter-dubbo

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

org.springframework.boot

spring-boot-maven-plugin

exec

3. 創(chuàng)建SessionConfig配置類

package com.jjy.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;

import org.springframework.data.redis.serializer.RedisSerializer;

import org.springframework.session.web.http.CookieSerializer;

import org.springframework.session.web.http.DefaultCookieSerializer;

@Configuration

public class SessionConfig {

@Bean

public CookieSerializer cookieSerializer() {

DefaultCookieSerializer serializer = new DefaultCookieSerializer();

serializer.setCookieName("JSESSIONID");

serializer.setCookiePath("/");

serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");

return serializer;

}

@Bean

public RedisSerializer redisSerializer() {

return new GenericJackson2JsonRedisSerializer();

}

}

4. 創(chuàng)建ScoreServiceImpl實現(xiàn)類

package com.jjy.service.impl;

import com.jjy.entry.Score;

import com.jjy.service.ScoreService;

import org.apache.dubbo.config.annotation.Service;

import java.util.ArrayList;

import java.util.List;

@Service

public class ScoreServiceImpl implements ScoreService {

@Override

public List getinfo() {

List list=new ArrayList<>();

for(int i=0;i<3;i++){

Score score=new Score();

score.setName("admin");

score.setScore(Math.random()*100);

list.add(score);

}

return list;

}

}

5. 創(chuàng)建SpringBootMain啟動類

package com.jjy;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@SpringBootApplication

@EnableRedisHttpSession

public class SpringBootMain {

public static void main(String[] args) {

SpringApplication.run(SpringBootMain.class,args);

}

}

6. 創(chuàng)建application.properties配置文件

spring.application.name=dubbopro

7. 創(chuàng)建application.yml配置文件

server:

port: 200

spring:

session:

store-type: redis

dubbo:

scan:

base-packages: com.jjy.service #指定把哪一個包下面的Servlet交給dubbo去管理。

protocol:

name: dubbo

port: -1

registry:

address: nacos://192.168.81.186:8848

cloud:

subscribed-services: ""

8. 創(chuàng)建bootstrap.yml配置文件

spring:

cloud:

nacos:

discovery:

server-addr: 192.168.81.186:8848

config:

server-addr: 192.168.81.186:8848

file-extension: yaml

namespace: 7e56a725-f51a-4603-b421-49add0ae9c4b # 命名空間ID,粘貼復(fù)制過來即可。

shared-configs:

- data-id: redissession1.yaml # 配置詳情內(nèi):Data ID,粘貼復(fù)制過來即可。

group: DEFAULT_GROUP # 配置詳情內(nèi):Group 粘貼復(fù)制過來即可。

inetutils:

preferred-networks: 192.168.56 # 服務(wù)管理內(nèi),public內(nèi)點擊詳情,可以查看,需要項目啟動后能查看,一般默認192.168.56

9. 啟動程序

必須先啟動consumer項目,再啟動provider項目 啟動postman發(fā)送請求 選擇GET請求,輸入http://127.0.0.1:100/user地址,點擊send 出現(xiàn)請求成功字樣即為成功。

總結(jié)

本文講述了: Dubbo:實現(xiàn)項目間通信 在下攸攸太上,我都寫了四十多篇文章了,確實有點編不出來了!嗚嗚!

柚子快報邀請碼778899分享:java Dubbo學(xué)習(xí)

http://yzkb.51969.com/

好文推薦

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19550938.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄