- 博客(26)
- 资源 (13)
- 收藏
- 关注
原创 zookeeper之服务注册发现
产品服务 controller: @RestController @RequestMapping("/product") public class ProductController { @RequestMapping("/getProduct/{id}") public Object getProduct(HttpServletRequest request, @PathVariable("id") String id) { return new Product(id,"
2020-11-10 21:59:54
269
原创 zookeeper之curator操作
创建session public class CuratorClientUtils { private static CuratorFramework curatorFramework; private final static String CONNECTSTRING="172.17.0.2:2181"; public static CuratorFramework getInstance(){ curatorFramework= CuratorFramewo
2020-11-08 12:32:40
212
原创 zookeeper之zkclient操作
创建session public class SessionDemo { private final static String CONNECTSTRING="172.17.0.2:2181"; public static void main(String[] args) { ZkClient zkClient=new ZkClient(CONNECTSTRING,4000); System.out.println(zkClient+" - > s
2020-11-08 12:29:55
269
原创 zookeeper之javaapi操作
创建session public class CreateSessionDemo { private final static String CONNECTSTRING="192.168.30.10:2181"; private static CountDownLatch countDownLatch=new CountDownLatch(1); public static void main(String[] args) throws IOException, Interrupt
2020-11-08 12:27:39
159
转载 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?
核心点有很多,为了更贴合实际场景,我从常见的面试问题入手: 如何保证消息不丢失? 如何处理重复消息? 如何保证消息的有序性? 如何处理消息堆积? 当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。 接下来进入正文。 什么是消息队列 来看看维基百科怎么说的,顺带学学英语这波不亏: In computer science, message queues and mailboxes are software-engineer
2020-10-26 15:32:17
375
1
原创 netty实现websocket例子
实现功能: 基于Netty的NIO通信框架,提供高性能的异步通信能力; 提供消息的编解码框架,可以实现POJO的序列化和反序列化; 提供基于IP地址的白名单接入认证机制; 链路的有效性校验机制; 链路的断连重连机制。 代码实现 相关vo: 消息的类型定义 /** * @author yun * 类说明:消息的类型定义 */ public enum MessageType { SERVICE_REQ((byte) 0),/*业务请求消息*/ SERVICE_RESP((byte) 1)
2020-10-18 17:50:35
394
1
原创 使用netty实现websocket通信demo
客户端 启动类: /** 这是WebSocket客户端的示例。 要运行此示例,需要兼容的WebSocket服务器。 因此,可以通过运行WebSocketServer来启动WebSocket服务器, */ public final class WebSocketClient { static final String URL = System.getProperty("url", "ws://127.0.0.1:8080/websocket")
2020-10-18 17:02:50
645
原创 短轮询、comet、websocket与spring整合代码例子
短轮询 function showTime(){ $.get("showTime",function (data) { console.log(data); $("#serverTime").html(data); }) } setInterval(showTime, 1000);
2020-10-17 16:00:55
411
原创 netty之udp单播demo
提问端 /** * @author yun * 类说明:发送端 */ public class UdpQuestionSide { public final static String QUESTION = "告诉我一句古诗"; public void run(int port) throws Exception{ EventLoopGroup group = new NioEventLoopGroup(); try {
2020-10-11 16:31:44
300
原创 netty之使用MessagePack序列化及使用LengthFieldPrepender处理粘包和半包
客户端 /** * 作者:yun * 创建日期:2018/08/26 * 类说明: */ public class ClientMsgPackEcho { private final String host; public ClientMsgPackEcho(String host) { this.host = host; } public void start() throws InterruptedException { Ev
2020-10-11 13:51:11
331
原创 netty之使用protobuf序列化例子
protobuf文件生成 从https://github.com/protocolbuffers/protobuf/releases下载protoc-3.13.0-win64.zip 解压得到protoc.exe 在同一目录下创建test.proto,内容如下: syntax = "proto2"; option java_package = "com.netty.protobuf"; option java_outer_classname = "PersonProto"; message Person
2020-10-11 13:29:00
333
原创 netty写一个http服务器
一、客户端 客户端启动类 /** * @author yun * 类说明: */ public class HttpClient { public void connect(String host, int port) throws Exception { EventLoopGroup workerGroup = new NioEventLoopGroup(); try { Bootstrap b = new Bootstrap();
2020-10-08 18:21:53
222
原创 netty解决粘包和半包
一、使用系统分隔符 客户端 /** * 作者:yun * 创建日期:2018/08/26 * 类说明: */ public class LineBaseEchoClient { private final String host; public LineBaseEchoClient(String host) { this.host = host; } public void start() throws InterruptedException
2020-10-08 17:42:54
166
原创 netty简单例子
EchoClient客户端 /** * 作者:yun * 创建日期:2018/08/26 * 类说明:netty的客户端 */ public class EchoClient { private final int port; private final String host; public EchoClient(int port, String host) { this.port = port; this.host = host;
2020-10-06 22:51:13
238
原创 nio原生例子
常量类 //服务器端口号 public static int DEFAULT_PORT = 12345; public static String DEFAULT_SERVER_IP = "127.0.0.1"; //返回给客户端的应答 public static String response(String msg){ return "Hello,"+msg+",Now is "+new java.util.Date( Sy
2020-10-06 16:29:10
183
原创 aio编程例子
AioClient 客户端主程序 import static cn.enjoyedu.ch01.Ch01Const.DEFAULT_PORT; import static cn.enjoyedu.ch01.Ch01Const.DEFAULT_SERVER_IP; /** * @author yun * 类说明:aio的客户端主程序 */ public class AioClient { //IO通信处理器 private static AioClientHandler clien
2020-10-04 18:54:57
336
原创 bio编程
BioServer public class BioServer { //服务器端必须 private static ServerSocket server; //线程池,处理每个客户端的请求 private static ExecutorService executorService = Executors.newFixedThreadPool(5); private static void start() throws IOExcepti
2020-10-04 17:59:11
149
原创 MySQL5.6空间gis扩展
MySQL空间扩展支持几何数据的存储,生成,分析,优化。 1、空间数据类型(存储) MySQL支持以下数据类型: Geometry:可以存储所有的几何类型 Point:简单点 LINESTRING:简单线 POLYGON:简单面 MULITIPOINT:多点 MULITILINESTRING:多线 MUILITIPOLYGON:多面 GEOMETRYCOLLECTION:任何几何集合 在创建表的时候可以根据需求选择合适的几何类型存储你的空间数据。 2、空间数据类型的生成 MySQ L支持WKB,WKT数据生
2020-08-05 21:53:02
1534
原创 设计模式之建造者模式
/** *@author hyun * *类说明:产品类,抽象的 */ public abstract class Person { protected String head; protected String body; protected String foot; public String getHead() { return head; } public void setHead(String head) {
2020-07-23 21:57:16
144
原创 mybatis代码自动生成工具mybatis-generator
添加maven依赖 <dependencies> <!-- mybatis相关依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <!-- 自动生成代码相关
2020-06-25 18:47:07
518
原创 mybatis动态sql语句-汇总
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.yun.mybatis.mapper.AccountMapper"> <sql id="BaseColumnName"&g
2020-06-25 13:17:09
201
原创 java多线程生产多线程消费模式模式
应用场景 比如我们需要上传一个excel 需要多线程校验,校验通过后直接插入数据库,这个时候我们就可以使用多线程校验 校验通过后多线程插入数据库场景,类似场景有非常多 不一一举例,废话不多说 直接上代码 代码模拟多线程生产任务 多线程同时消费的场景 运行结果示例 代码 package com.hyun.test.my; import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.con
2020-05-25 22:35:06
322
转载 阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer
前言 关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。 那锁本身是怎么去实现的呢?又有哪...
2020-05-25 20:58:28
325
原创 java 多线程处理任务,返回带进度条结果 封装为工具类
应用场景 在我们写业务代码中,经常会想到多线程处理复杂耗时任务,但又想返回处理进度,下面代码就是实现这个业务。 以下代码是执行两个任务,分别输出两个任务的实时进度和最后结果,包括定时从缓存移除 运行效果图: 类说明 需自定义类: MyRun---------------程序测试入口 MyTask--------------具体需执行业务类 RequestData-------请求参数实体 ResponseRet------返回结果实体 框架类(无需修改,直接用): CheckJobProcesser---
2020-05-24 15:42:55
2926
3
原创 java泛型的全面使用
概念 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢? 顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参), 然后在使用/调用时传入具体的类型(类型实参)。 使用 1、泛型类: public class TaskResult<R> { private R data; private String reason; private ResultEnum res
2020-05-24 10:28:30
195
原创 java守护线程和非守护线程
守护进程: 在Java中有两类线程: User Thread(用户线程):不随主线程的结束而结束,直到自己运行完 Daemon Thread(守护线程) :当前JVM存在任何非守护线程时,守护线程就还可以工作(除非自己结束) 举例理解: public class TestDaemon { public static void main(String[] args) { //守护线程 睡眠5s Thread daemonThread = new Thread(()->{ try .
2020-05-23 20:51:35
689
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅