- 博客(1207)
- 收藏
- 关注
原创 dubbo复习:(19)dubbo 和spring整合(老古董)
三、服务端配置文件(resources目录下dubbo-demo-provider.xml)其中使用了CountDownLatch,使服务端一直运行。其中配置了注册中心的地址和使用的服务。六、客户端的服务接口定义,同服务端。其中配置了服务本身和注册中心地址。五、客户端依赖,类似于服务器端。二、服务端接口定义和实现。
2024-05-31 14:14:19
382
原创 dubbo复习:(18)服务端Filter
用来在服务响应返回到客户端之前进行额外处理。三、配置文件中指定Filter。二、SPI注入Filter。一、定义Filter。
2024-05-31 11:11:13
372
原创 dubbo复习:(17)dubbo连接skywalking
九、服务消费者自己的业务逻辑,其中通过@DubboReference来调用dubbo服务。十一、服务消费者端的启动类和配置文件类似于服务提供者。十二、在skywalking中查看服务调用的指标。一、准备skywalking 8.7.0并启动。二、配置好skywalking agent。四、增加skywalking的配置bean。八、服务消费者添加接口定义,同服务提供者。七、服务消费者添加依赖,类似服务提供者。十、服务消费者端的controller。三、服务提供者端的依赖。
2024-05-31 10:38:39
570
原创 dubbo复习:(16)使用seata实现分布式事务
其中LogicService使用了seata提供的分布式事务注解@GlobalTransactional,addUser方法正常提交事务,addUser2方法用除零错误让分布式事务回滚。userinfo作用是保存用户,counter表作用是保存剩余可添加的用户的数量。目的是当业务逻辑发生异常时,将已经提交到数据库中的这两个表的数据都撤回。九、分别调用接口,看正常情况下数据是否写入,看异常时写入的数据是否被撤回。五、服务消费者端的依赖,和服务提供者端类似。六、服务消费者端定义接口和自己本身业务逻辑。
2024-05-30 09:09:17
334
原创 dubbo复习:(15)泛化调用
3.客户端在没有拿到服务器端接口定义的情况下,直接通过反射获取服务。客户端在没有拿到服务器端接口定义的情况下通过反射获取服务。1.服务器端定义接口。2.服务器端实现接口。
2024-05-29 16:14:42
316
原创 dubbo复习:(14)通过上下文传递附加数据
服务调用和响应时,除了请求的方法和返回的响应,还可以通过上下文(Context)传递更多的数据(附加数据)会向服务器发送hello world,同时,会收到服务器端返回的hi world。其中除了正常的响应之外,还通过上下文传递了hi world。
2024-05-29 16:01:21
364
原创 dubbo复习:(13)把服务划分为不同的group 和version,只有服务端和客户端group和version匹配才能通信
通过@DubboService注解指定了group和version。三、客户端分别调用不同的group&版本。
2024-05-29 10:35:08
303
原创 dubbo复习:(12)服务器端的异步和客户端的异步调用
一、服务器端接口的定义和实现:package cn.edu.tju.service;import java.util.concurrent.CompletableFuture;public interface AsyncService { /** * 同步调用方法 */ String invoke(String param); /** * 异步调用方法 */ CompletableFuture<String> as
2024-05-29 10:21:48
372
原创 dubbo复习:(11)使用grpc客户端访问tripple协议的dubbo 服务器
dubbo3 服务端,在使用tripple协议时,底层可以使用grpc协议,因此其它的客户但可以通过grpc通信的方式来访问dubbo 3的服务端。七、客户端proto(scr/main/proto/hello.proto)和服务端的相同。将其剪切到src/main/java(也可以配置maven直接生成到指定位置)二、服务器端hello.proto文件,位于src/main/proto。根据包名,将生成的代码剪切到scr/main/java下。八、编写grpc客户端主类,来访问dubbo服务端。
2024-05-29 08:17:00
580
原创 dubbo复习:(10)使用tripple协议进行通信
然后将生成的java代码拷贝到src下,再编写接口实现文件以及服务端主类和客户端主类,这种方式实际是使用了grpc进行了通信。也可以在src/main/proto目录下创建.proto文件,其中注册中心为zookeeper 3.6.2。然后使用compile生成接口定义文件。
2024-05-28 22:48:51
354
原创 dubbo复习:(9)配置中心的大坑,并不能像spring cloud那样直接从配置中心读取自定义的配置
配置中心只是为 Dubbo 配置提供管理使用的(比如配置服务超时时间等)。不要尝试通过@Value类似的方式从dubbo 配置中心(比如nacos、zookeeper、Apollo)来获取数据。
2024-05-26 18:46:19
384
原创 dubbo复习:(8)使用sentinel对服务进行降级
七、客户端调用dubbo服务sayHello接口,满足降级的条件后,将从接口获取到类似如下的响应(其中getDubbo这个接口调用了上面的sayHello接口)五、定义服务接口、服务实现(其中服务实现中故意制造出了除零异常用来测试降级,handleException方法是降级时被调用的方法)一、下载sentinel-dashboard控制台应用并在8080端口启动。六、在sentinel-dashboard控制台配置降级规则。二、项目添加springboot 和dubbo相关依赖(可见降级规则起作用了。
2024-05-25 18:21:41
455
原创 dubbo复习:(7)使用sentinel对dubbo服务进行限流
五、调用一下服务消费者端对外暴露的接口(不调用的话有可能sentinel-dashboard控制台上看不到服务提供者的注册)。然后打开sentinel-dashboard控制台(localhost:8080,用户名密码sentinel)六、快速访问服务消费者端暴露的端口(可以使用测试工具),就可以看到500错误。三、配置系统属性,连接到sentinel-dashboard。一、下载sentinel-dashboard 并启动。四、在服务提供者端创建服务,并在服务消费者端调用。就可以编辑限流规则了。
2024-05-25 09:51:20
419
原创 dubbo复习: (6)和springboot集成时的条件路由
比如拦截ip地址为192.168.31.227的请求。只需要在dubbo admin中的条件路由菜单创建相应的规则。根据指定的条件,对不满足条件的请求进行拦截。
2024-05-24 14:03:50
245
原创 dubbo复习: (5)和springboot集成时的标签路由
给服务提供者指定标签有两种方式,一种是通过在@DubboService注解的tag属性来指定,如下示例。只有服务提供者的标签和服务消费者的标签一致时,才会进行请求路由。,则会将请求路由到192.168.31.226:28093。标签路由:服务提供者和服务消费者都可以指定标签。另一种是通过dubbo admin进行动态指定,
2024-05-24 13:30:39
308
原创 dubbo复习:(4) 和springboot 整合时,客户端负载均衡的配置
需要在@DubboReference注解指定loadbalance属性。默认的配置是random。
2024-05-23 12:47:48
1060
原创 dubbo复习:(3) 服务超时时间配置
这样配置之后,当服务端响应超过55毫秒时,在服务消费者的控制台就会看到超时信息。在dubbo admin中。可以进行类似如下配置。
2024-05-15 20:44:49
362
原创 dubbo复习:(1)spring boot和dubbo整合
2.配置文件中配置dubbo相关信息(使用dubbo协议)和zookeeper的地址。4.定义服务实现,使用注解@DubboService将服务注册到zookeeper。4.创建服务实现,通过@DubboReference注解使用服务提供者所提供的服务。5.定义spring boot 主类,加上@EnableDubbo注解。6.定义spring boot 主类,加上@EnableDubbo注解。3.创建服务定义接口,和服务提供者端相同。1.添加依赖,和服务生产者类似。3.创建服务定义接口。
2024-05-14 12:49:30
254
原创 k8s:使用Fabric 来访问api-server
二、通过kubectl 去k8s集群获取token。三、通过token访问k8s,使用Fabric框架。
2024-04-28 08:37:11
602
3
原创 k8s: 从私有仓库harbor获取镜像
二、在清单文件中使用imagePullSecrets来引入上面这个步骤中创建的secret。一、根据私有仓库的用户名密码等信息创建secret。
2024-04-27 13:26:52
508
原创 k8s: NodeAffinity之优先调度策略和必须条件满足的调度策略
这个配置是要求必须调度到hostname 为i-1ykfhwu2的结点,如果不存在,则pod会处于pending状态。将pod 优先调度到hostname 为i-1ykfhwu2的node,如果不满足,也可以调度。
2024-04-19 16:32:51
325
原创 k8s:通过nodeSelector将pod调度到含有指定标签的结点上
二、在资源清单文件中配置nodeSelector来指定要往满足哪个标签条件的结点进行调度。这个配置将把pod调度到status为bad的结点。一、查看node,并给node打标签。
2024-04-19 14:11:09
489
原创 spring boot: 使用MyBatis从hive中读取数据
二、添加mybatis starter和hive依赖。五、定义controller,注入mapper并使用。启动hiveserver2。四、定义mapper。
2024-04-18 07:02:53
919
原创 hive: 自定义函数的用法
六、基于jar包创建自定义函数,引号中的是自定义函数类的全路径。五、通过hive的add jar 添加到hive环境。二、定义类,继承GenericUDF。四、上传到hive的服务器。
2024-04-15 11:25:24
316
原创 Hadoop: word count,并将reduce结果写入ES
其中 job.setOutputFormatClass(MyOutputFormat.class);用来指定reduce的结果写到哪里。其中getRecordWriter方法返回了一个RecordWriter类的对象。其中构造方法创建了一个ES 客户端对象。write方法用来把数据写入ES.二、定义表示word count 结果的实体类。四、自定义类,实现接口OutputFormat。三、定义mapper和reducer。一、依赖,其中ES版本为7.6.2。六、任务执行后在ES查询数据。
2024-04-04 19:51:16
262
原创 Hadoop: word count,并将结果写入到MySQL
其中DBOutputFormat.setOutput(job, “word_count”, “word”, “count”);这句设置往数据库写数据。任务的输入数据来自hdfs.三、定义实体类,实现DBWritable接口和Writable接口。其中使用了上面定义的MyDBWritable类。六、定义主类,启动hadoop job。七、任务结束后在数据库中查询结果。五、定义reducer。四、定义mapper。
2024-04-04 18:20:24
171
原创 hadoop:案例:将顾客在京东、淘宝、多点三家平台的消费金额汇总,然后先按京东消费额排序,再按淘宝消费额排序
二、实现思路:先通过一个MapReduce将顾客的消费金额进行汇总,再通过一个MapReduce来根据金额进行排序。六、定义主类,其中定义两个Job,等第一个job运行结束之后第二Job开始运行。四、定义第一对Mapper和Reducer。五、定义第二对Mapper和Reducer。一、原始消费数据buy.txt。
2024-04-03 23:35:35
602
原创 pulsar: kafka on pulsar之把pulsar当kafka用
就可以通过kafka console producer 和consumer或者java程序和pulsar构造出来的"kafka”交换数据了。三、编辑broker.conf(如果是集群)或者standalone.conf(如果是单机版)二、在pulsar的根目录创建一个protocols目录,将上述包放到这个目录里。四、重启pulsar。可以看到本机的9092端口就开了。一、下载协议包(要和pulsar版本比较一致)添加几行配置:(第二行要根据实际路径修改)
2024-03-28 20:27:26
503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人