当前位置: 首页 > news >正文

网站建设项目验收报告合肥婚恋网站建设

网站建设项目验收报告,合肥婚恋网站建设,36氪是wordpress开发的吗,广州关于进一步优化本文使用K8s当做服务注册与发现、配置管理#xff0c;使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.…本文使用K8s当做服务注册与发现、配置管理使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.14/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIdservice-provider/artifactIdversion0.0.1-SNAPSHOT/versionnameservice-provider/namedescriptionservice-provider/descriptionpropertiesjava.version11/java.version!-- os.detected.classifierosx-aarch_64/os.detected.classifier--os.detected.classifierosx-x86_64/os.detected.classifier/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdtypepom/typescopeimport/scopeversion2.5.14/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion2020.0.6/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-kubernetes-dependencies/artifactIdversion1.1.10.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-kubernetes-client-all/artifactId/dependency!-- gRpc --dependencygroupIdnet.devh/groupIdartifactIdgrpc-spring-boot-starter/artifactIdversion2.13.1.RELEASE/version/dependencydependencygroupIdio.grpc/groupIdartifactIdgrpc-protobuf/artifactIdversion1.52.1/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optionalversion1.18.24/version/dependency/dependenciesbuildextensionsextensiongroupIdkr.motd.maven/groupIdartifactIdos-maven-plugin/artifactIdversion1.7.1/version/extension/extensionspluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationclassifierexec/classifier/configuration/pluginplugingroupIdorg.xolstice.maven.plugins/groupIdartifactIdprotobuf-maven-plugin/artifactIdversion0.6.1/versionconfigurationprotocArtifactcom.google.protobuf:protoc:3.21.7:exe:${os.detected.classifier}/protocArtifactpluginIdgrpc-java/pluginIdpluginArtifactio.grpc:protoc-gen-grpc-java:1.52.1:exe:${os.detected.classifier}/pluginArtifact/configurationexecutionsexecutiongoalsgoalcompile/goalgoalcompile-custom/goal/goals/execution/executions/plugin/plugins/build/project 配置文件 application.ymlgrpc:server:port: 9090 server:port: 30000 spring:application:name: service-providercloud:kubernetes:reload:enabled: truemode: pollingperiod: 5000logging:level:org.springframework.cloud.loadbalancer: debug主类 ServiceProviderApplicationpackage com.example.service.provider;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient public class ServiceProviderApplication {public static void main(String[] args) {SpringApplication.run(ServiceProviderApplication.class, args);} }在 src/main/proto文件夹下新增PB文件 HelloFacade.protosyntax proto3;option java_multiple_files true; option java_package com.example.service.provider.api; option java_outer_classname HelloServiceProto;service HelloService {rpc SayHello (SayHelloRequest) returns (SayHelloResponse) {} }message SayHelloRequest {string name 1; }message SayHelloResponse {int32 code 1;string message 2;bool success 3;SayHelloData data 4; }message SayHelloData {string name 1;string content 2; }接口实现类package com.example.service.provider.facade;import com.example.service.provider.api.HelloServiceGrpc; import com.example.service.provider.api.SayHelloData; import com.example.service.provider.api.SayHelloRequest; import com.example.service.provider.api.SayHelloResponse; import lombok.extern.slf4j.Slf4j; import net.devh.boot.grpc.server.service.GrpcService;Slf4j GrpcService public class HelloServiceImpl extends HelloServiceGrpc.HelloServiceImplBase {Overridepublic void sayHello(SayHelloRequest request, io.grpc.stub.StreamObserverSayHelloResponse responseObserver) {log.info(接收consumer的say hello grpc 请求);SayHelloData helloData SayHelloData.newBuilder().setName(maple).setContent(say hello).build();SayHelloResponse.Builder builder SayHelloResponse.newBuilder().setCode(0).setMessage(success).setSuccess(true).setData(helloData);responseObserver.onNext(builder.build());responseObserver.onCompleted();} } DockerfileFROM openjdk:11-jdk-slim ENV jarNameservice-provider.jar ADD service-provider-0.0.1-SNAPSHOT-exec.jar $jarName ENTRYPOINT java -Duser.timezoneGMT8 -jar $jarNameK8s声明yaml文件 service-provider-deploy.yamlapiVersion: v1 kind: Namespace metadata:name: service-k8s-demolabels:name: service-k8s-demo---apiVersion: v1 kind: ServiceAccount metadata:name: service-k8s-demonamespace: service-k8s-demo---kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:namespace: service-k8s-demoname: service-k8s-demo rules:- apiGroups:- resources:- services- configmaps- endpoints- nodes- pods- secrets- namespacesverbs:- get- list- watch---apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: service-k8s-demonamespace: service-k8s-demo subjects: - kind: ServiceAccountname: service-k8s-demonamespace: service-k8s-demo roleRef:kind: ClusterRolename: service-k8s-demoapiGroup: rbac.authorization.k8s.io---apiVersion: apps/v1 kind: Deployment metadata:name: service-providernamespace: service-k8s-demolabels:app: service-provider spec:replicas: 3template:metadata:name: service-providerlabels:app: service-providerspec:containers:- name: service-providerimage: service-provider:1.0ports:- name: httpprotocol: TCPcontainerPort: 30000- name: grpcprotocol: TCPcontainerPort: 9090imagePullPolicy: IfNotPresentserviceAccountName: service-k8s-demorestartPolicy: Alwaysselector:matchLabels:app: service-provider---apiVersion: v1 kind: Service metadata:name: service-providernamespace: service-k8s-demo spec:selector:app: service-providerports:- port: 80targetPort: 30000name: http- port: 9090targetPort: 9090name: grpcclusterIP: None 本地启动测试三、准备service-consumerpom?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.14/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIdservice-consumer/artifactIdversion0.0.1-SNAPSHOT/versionnameservice-consumer/namedescriptionservice-consumer/descriptionpropertiesjava.version11/java.version/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdtypepom/typescopeimport/scopeversion2.5.14/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion2020.0.6/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-kubernetes-dependencies/artifactIdversion1.1.10.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdcom.example/groupIdartifactIdservice-provider/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-kubernetes-client-all/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optionalversion1.18.24/version/dependency!-- gRpc --dependencygroupIdnet.devh/groupIdartifactIdgrpc-spring-boot-starter/artifactIdversion2.13.1.RELEASE/version/dependencydependencygroupIdio.grpc/groupIdartifactIdgrpc-protobuf/artifactIdversion1.52.1/version/dependency/dependenciesbuildextensionsextensiongroupIdkr.motd.maven/groupIdartifactIdos-maven-plugin/artifactIdversion1.7.1/version/extension/extensionspluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationclassifierexec/classifier/configuration/pluginplugingroupIdorg.xolstice.maven.plugins/groupIdartifactIdprotobuf-maven-plugin/artifactIdversion0.6.1/versionconfigurationprotocArtifactcom.google.protobuf:protoc:3.21.7:exe:${os.detected.classifier}/protocArtifactpluginIdgrpc-java/pluginIdpluginArtifactio.grpc:protoc-gen-grpc-java:1.52.1:exe:${os.detected.classifier}/pluginArtifact/configurationexecutionsexecutiongoalsgoalcompile/goalgoalcompile-custom/goal/goals/execution/executions/plugin/plugins/build /project 配置文件 application.ymlgrpc:server:port: 9091client:service-provider:negotiation-type: plaintextenable-keep-alive: truekeep-alive-without-calls: trueaddress: static://service-provider:9090server:port: 30001 spring:application:name: service-consumercloud:kubernetes:reload:enabled: truemode: pollingperiod: 5000logging:level:org.springframework.cloud.loadbalancer: debug 主类 ServiceConsumerApplicationpackage com.example.service.consumer;import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;Slf4j RestController EnableDiscoveryClient SpringBootApplication RequiredArgsConstructor public class ServiceConsumerApplication {private final DiscoveryClient discoveryClient;private final ProviderServiceGrpcClient providerServiceGrpcClient;public static void main(String[] args) {SpringApplication.run(ServiceConsumerApplication.class, args);}GetMapping(/grpc/hello)public String sayHello() {log.info(消费服务:service-consumer grpc 调用 service-provider);return providerServiceGrpcClient.sayHello();}GetMapping(/consumers/services)public ListString findServices() {log.info(当前注册中心下所有服务);ListString services discoveryClient.getServices();services.stream().map(discoveryClient::getInstances).forEach(v -v.forEach(s - System.out.printf(%s:%s uri:%s%n, s.getHost(), s.getPort(), s.getUri())));return services;} }gRpc调用Provider ProviderServiceGrpcClientpackage com.example.service.consumer;import com.example.service.provider.api.HelloServiceGrpc; import com.example.service.provider.api.SayHelloRequest; import com.example.service.provider.api.SayHelloResponse; import net.devh.boot.grpc.client.inject.GrpcClient; import org.springframework.stereotype.Service;Service public class ProviderServiceGrpcClient {GrpcClient(service-provider)private HelloServiceGrpc.HelloServiceBlockingStub helloServiceBlockingStub;public String sayHello() {SayHelloRequest request SayHelloRequest.newBuilder().setName(maple123).build();SayHelloResponse sayHelloResponse helloServiceBlockingStub.sayHello(request);return sayHelloResponse.toString();} } DockerfileFROM openjdk:11-jdk-slim ENV jarNameservice-consumer.jar ADD service-consumer-0.0.1-SNAPSHOT-exec.jar $jarName ENTRYPOINT java -Duser.timezoneGMT8 -jar $jarNameK8s声明yaml文件 service-consumer-deploy.yamlapiVersion: v1 kind: Namespace metadata:name: service-k8s-demolabels:name: service-k8s-demo---apiVersion: v1 kind: ServiceAccount metadata:name: service-k8s-demonamespace: service-k8s-demo---kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata:namespace: service-k8s-demoname: service-k8s-demo rules:- apiGroups:- resources:- services- configmaps- endpoints- nodes- pods- secrets- namespacesverbs:- get- list- watch---apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: service-k8s-demonamespace: service-k8s-demo subjects:- kind: ServiceAccountname: service-k8s-demonamespace: service-k8s-demo roleRef:kind: ClusterRolename: service-k8s-demoapiGroup: rbac.authorization.k8s.io---apiVersion: apps/v1 kind: Deployment metadata:name: service-consumernamespace: service-k8s-demolabels:app: service-consumer spec:replicas: 1template:metadata:name: service-consumerlabels:app: service-consumerspec:containers:- name: service-consumerimage: service-consumer:1.0ports:- name: httpprotocol: TCPcontainerPort: 30001- name: grpcprotocol: TCPcontainerPort: 9091imagePullPolicy: IfNotPresentserviceAccountName: service-k8s-demorestartPolicy: Alwaysselector:matchLabels:app: service-consumer---apiVersion: v1 kind: Service metadata:name: service-consumernamespace: service-k8s-demo spec:selector:app: service-consumerports:- port: 80targetPort: 30001name: http- port: 9091targetPort: 9091name: grpctype: NodePort本地启动测试四、打镜像docker build -t service-provider:1.0 . docker build -t service-consumer:1.0 .五、执行K8s yaml文件 创建命名空间、账号、角色、部署应用、暴露端口等kubetl apply -f service-provider-deploy.yaml kubetl apply -f service-consumer-deploy.yaml六、查看与测试gRpc正常访问但是发现一个问题下面的图片上面三个是Provider发现负载均衡失效了请求全都打在了一个Provider里搜了下发现和 gRpc基于HTTP2.0 多路复用 有关之后再处理吧。
http://www.hkea.cn/news/14504018/

相关文章:

  • 在东莞建公司网站甘肃省第八建设集团公司网站
  • 大气企业网站模板自己建设网站不会咋办呀
  • 公司网站优化去哪里学seo网站优化服务商
  • 汽车网站建设开题报告Wordpress禁止爬虫ip
  • 建设美食网站的目的和功能定位wordpress 跳转链接地址
  • 深圳建设网站联系电话安卓手机网站源码下载
  • 2017我们一起做网站百度一下首页官网
  • 怎么修改网站的关键词学计算机的毕业后可以找什么工作
  • 中山市网站开发外包公司刚做网站做多用户还是单用户
  • 游戏网站设计风格有哪些旅游网站开发系统
  • 襄阳市住房城乡建设部网站广西网站建设与规划
  • 网站后台用esayui做公司推广发帖网站怎么做
  • 精品课程云网站建设招代理的网站要怎么做的
  • 汕头网站推广seo什么推广方法是有效果的
  • 网站空间支付方式郑州联通网站备案
  • 郑州电商网站建设网站内容发布平台源码
  • 网站开发构成微网站开发提供的服务
  • 漫画门户网站怎么做的启用中文域名大网站
  • 代做效果图网站好教学资源库 网站建设
  • 在哪里可以改动网站标题怎么做视频解析的网站
  • 外贸网站如何做推广是什么哪些网站容易被百度收录
  • php网站开发实例教程源码想做个人域名网站怎么做
  • 工具型网站有哪些城阳网站开发公司电话
  • 互联网行业招聘网站邯郸封控最新消息
  • asp.net做网站源代码网站开发设计培训
  • 网站建设技术团队有多重要性海外网站免费建设
  • 塑模毕业设计代做网站软件开发模型比较
  • 苏州知名网站制作公司久久文化传媒有限公司招聘信息
  • 北流科技网站建设宜兴网站制作
  • 骨骼型的网站wordpress变成静态网页