jsonobject

Canal+Kafka实现MySql与Redis数据一致性

[亡魂溺海] 提交于 2020-03-02 14:26:40
  在生产环境中,经常会遇到MySql与Redis数据不一致的问题。那么如何能够保证MySql与Redis数据一致性的问题呢?话不多说,咱们直接上解决方案。   如果对Canal还不太了解的可以先去看一下官方文档: https://github.com/alibaba/canal   首先,咱们得先开启MySql的允许基于BinLog文件主从复制。因为Canal的核心原理也是相当于把自己当成MySql的一个从节点,然后去订阅主节点的BinLog日志。    开启BinLog文件配置   1. 配置 MySQL 的 my.ini/my.cnf 开启 允许基于 binlog 文件主从同步 log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复   配置 该文件后,重启 mysql 服务器即可   show variables like 'log_bin';//查询MySql是否开启了log_bin. 没有开启 log_bin 的值是 OFF, 开启之后是 ON   2. 添加cannl 的账号 或者直接使用自己的 root 账号。添加完后 一定要检查 mysql user 权限为 y(SELECT* from `user`

SpringBoot实战:SpringBoot之Rest Full接口自定义返回数据类型(ResponseBodyAdvice)

故事扮演 提交于 2020-03-01 23:42:42
我们在日常开发的过程中,经常会要求统一返回数据格式。如要求统一访问格式为 { "success": 请求是否成功, "message": 请求消息, "data": 请求数据 } 那我们要如何实现呢,接下来将演示接口自定义返回数据类型 一般接口返回的数据格式的都是json,故现在pom.xml引入fastjson包 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 先建一个符合统一数据格式的实体类 import lombok.Getter; import lombok.Setter; import java.io.Serializable; /** * @author wusy * Company: xxxxxx科技有限公司 * Createtime : 2020/2/28 22:11 * Description : rest full 统一返回包装类 */ @Setter @Getter public class ResultObjectModel<T> implements Serializable { /** * 返回是否成功 */ private Boolean success; /** *

jQuery的.post

送分小仙女□ 提交于 2020-03-01 04:32:14
jQuery的.post (2011-04-27 00:33:11) 转载 标签: 杂谈 一、准备工作·Customer类 public class Customer { public int Unid { get; set; } public string CustomerName { get; set; } public string Memo { get; set; } public string Other { get; set; } } 二、定义:jQuery.post( url, [data], [callback], [type] ) ·url:加载页的地址 ·data(optional):k/v对或序列化的字符串(.serialize()),参数 ·callbakc(optional):数据成功加载后的执行函数 ·type(optional):请求返回的数据格式,串型 三、ashx文件 (1)请求单实体数据 ·Ashx 文件,这里不对返回的数据做显式的序列化。 Customer customer = new Customer { Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" }; context.Response.Write(customer); ·ajax post function

【MongoDB】MongoDB-Change Streams

折月煮酒 提交于 2020-03-01 00:34:13
前言 Change Stream是从mongodb3.6版本开始支持的一种新特性,是mongodb向应用发布数据变更的一种方式,即数据库中有任何数据变化,应用端都可以得到通知,类似于触发器的概念 方案思路 MongoClient去订阅mongodb数据库中某张表最新事件变化,类似于以事件驱动机制对collection变化做监听,化主动为被动,只需要被动等待collection变化消息 Change Stream 与 Tailing Oplog 对比,参考: http://www.mongoing.com/archives/29921 Java版本demo public class MongodbStreamResumeToken { /** * 用于模拟断点续传的存储,后期可以存储redis缓存中 */ private HashMap hashMap = new HashMap(); public MongoDatabase getDatabase(){ MongoDatabase database = null; MongoClient mongoClient = null; // MongoCredential credential = MongoCredential.createScramSha1Credential("userName","source","password

apache.commons.httpclient.HttpClient get/post请求

好久不见. 提交于 2020-02-28 14:15:44
一、httpclient 发送请求的步骤(流程) 1、创建httpclient 对象 2、创建某种连接方式的对象 --如 GetMethod PostMethod 等对象,构造函数中是请求地址即url,如果是get请求可以在url后面添加请求参数 如: http://127.0.0.1:8080/music?id=1&name=name 3、 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例,也就是这时候发送了请求 4、获取服务器响应的值 5、关闭连接,这个和 连接数据库之后释放资源一样,执行之后要释放连接资源 6、处理获得的数据 二、核心代码:org.apache.commons.httpclient.HttpClient get请求来实现,响应返回的数据格式为jsonobject格式 1、发送请求,请求成功响应数据的处理 // 创建 httpclient 对象 HttpClient httpclient= new HttpClient(); //创建请求方式 GetMethod getMethod = new GetMethod("http://localhost:8080/music/user/delete.do?id=1"); // 响应状态的判断 try{ int status= httpclient.executeMethod

分销系统数据库设计

て烟熏妆下的殇ゞ 提交于 2020-02-27 12:10:32
简单点说二三级分销系统,   1、用户通过分享链接促成商品卖出,获取到一定比例的商品利润。   2、用户促成交易获得一定比例的利润时,其上级用户也会获得一定比例的利润。   对于本人所设计的分销系统,与二三级分销系统还是有很大的差别, 只要是上级用户,其下级或无线下级的用户一旦获取利润,其都可以获得一定利润比咧,而类似于微信的二三级分销系统,是只有连续的三级用户才可以获得利润。 这里只为解决这些需求所带来的技术难题,不做实际应用。 由上我们可以分析出一些内容   数据库设计方面:用户表的设计,用户的上下级关系如何设计,推广链接的数据库存储,用户与推广链接的数据存储   网上看到用户上下级关系有很多存储方式,   比如, 方法一、   用一个tree字段存储字符串来表示上下级关系模式,比如A用户是B用户的上级, 则用户B的数据库中tree为"/A/" , B用户的下级是C用户,则C的tree是"/A/B/" 这样要数据库查找上下级关系的时候只需要SELECT * FROM user WHERE treelike "/A/%" 如上面sql语句是查找出A的所有下级用户,使用一条简单的sql语句即可完成查找。 如果要找到当前用户的所有上级用户也是用like关键字进行匹配,如查找C用户上级 , %是通配符,匹配任意多个字符串 SELECT * FROM user WHERE

Java 方法返回多种类型

蹲街弑〆低调 提交于 2020-02-27 09:24:38
package com.cxyapi.generics; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import net.sf.json.JSONObject; /** Java方法返回多种类型 * @author cxy @ www.cxyapi.com */ public class ReturnMultipleResult { public static void main(String[] args) { //方式一:使用json JSONObject result1=ReturnMultipleResult.way1(); System.out.println(result1); JSONObject jos=(JSONObject)result1.get("s"); System.out.println(jos.get("name")); /* JSONObject中存放的都是Object类型(其实是JSONObject类型) * 如果想使用原来的类型,还需要其他的转换方式(toBean方法) * 但是toBean方法 对于 有自定义构造函数的class,还需要一个init方法或定义映射 * 好麻烦呀~ * 并且这种方式还需要导入各种jar包 *

restTemplate的get post请求不同的header设置及传参方式

喜欢而已 提交于 2020-02-26 16:59:49
1.post 请求 //有参 请求体【body体中】json参数 JSONObject params=new JSONObject(); params.put("param1","value1"); JSONObject jsonobject=restTemplate.postForTemplate(url,params,JSONObject.class); //有参 请求体中json参数 设置header头 JSONObject param = new JSONObject(); param.put("param1","value1"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.set("Accept", "application/json"); HttpEntity httpEntity = new HttpEntity<>(param, headers); JSONObject jsonObject = restTemplate.postForObject(url, httpEntity, JSONObject.class); 2.get请求 @Autowired private RestTemplate

使用Java操作JSON字符串对象

社会主义新天地 提交于 2020-02-26 16:25:37
1、如果我们需要实现一个配置管理的功能,那么为每个配置项目增加一个字段既复杂也不利于扩展,所以我们通常使用一个字符串来保存配置项目信息,这里介绍如何使用json的字符串解析来达到刚才说的目的。引入Json需要的类库: import org.json.JSONException; import org.json.JSONObject; 2、生成一个json对象(可以添加不同类型的数据): JSONObject jsonObject = new JSONObject(); jsonObject.put( " a " , 1 ); jsonObject.put( " b " , 1.1 ); jsonObject.put( " c " , 1L ); jsonObject.put( " d " , " test " ); jsonObject.put( " e " , true ); System.out.println(jsonObject); // {"d":"test","e":true,"b":1.1,"c":1,"a":1} 3、解析一个json对象(可以解析不同类型的数据),getJSONObject(String str): jsonObject = getJSONObject( " {d:test,e:true,b:1.1,c:1,a:1} " ); System.out

json字符串转json对象,json对象转换成java对象

妖精的绣舞 提交于 2020-02-26 15:50:33
@RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @ResponseBody public void updateInvestorApplyAccountNo(HttpServletRequest request, HttpServletResponse response, @RequestBody String requestBody) { int num = 0; String result = ""; //下面是把拿到的json字符串转成 json对象 JSONObject jsStr = JSONObject.parseObject(requestBody); //将字符串{“id”:1} //int jsID = Integer.parseInt(jsStr.getString("id"));//获取id的值 /** * json对象转换成java对象 */ InvestorApplyModel stud = (InvestorApplyModel) JSONObject.toJavaObject(jsStr,InvestorApplyModel.class); } 来源: https://www.cnblogs.com/thiaoqueen/p