topic

FreeSql (十七)联表查询

丶灬走出姿态 提交于 2019-11-29 20:37:27
FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10") .Build(); [Table(Name = "tb_topic")] class Topic { [Column(IsIdentity = true, IsPrimary = true)] public int Id { get; set; } public int Clicks { get; set; } public int TestTypeInfoGuid { get; set; } public TestTypeInfo Type { get; set; } public string Title { get; set; } public DateTime CreateTime { get; set; } } class TestTypeInfo {

FreeSql (十四)批量更新数据

坚强是说给别人听的谎言 提交于 2019-11-29 20:36:31
FreeSql支持丰富的更新数据方法,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录值。 var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10"; IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connstr) .UseAutoSyncStructure(true) //自动同步实体结构到数据库 .Build(); [Table(Name = "tb_topic")] class Topic { [Column(IsIdentity = true, IsPrimary = true)] public int Id { get; set; } public int Clicks { get; set; } public string Title { get; set; } public DateTime CreateTime { get; set; } } 批量更新 var items = new List

FreeSql (九)删除数据

僤鯓⒐⒋嵵緔 提交于 2019-11-29 20:33:42
删除是一个非常危险的操作,FreeSql对删除支持并不强大,仅支持了单表有条件的删除方法。 不想过多的介绍拉长删除数据的系列文章,删除数据的介绍仅此一篇。 若Where条件为空的时候执行方法,FreeSql仅返回0或默认值,不执行真正的SQL删除操作。 为了增强系统的安全性,强烈建议在实体中增加 is_deledted 字段做软删除标识。 var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10"; IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connstr) .UseAutoSyncStructure(true) //自动同步实体结构到数据库 .Build(); [Table(Name = "tb_topic")] class Topic { [Column(IsIdentity = true, IsPrimary = true)] public int Id { get; set; } public int

FreeSql (三)实体特性

我与影子孤独终老i 提交于 2019-11-29 20:29:42
主键(Primary Key) class Topic { [Column(IsPrimary = true)] public int Id { get; set; } } 约定: 当没有指明主键时,命名为 id 的字段将成为主键;(不区分大小写) 当主键是 Guid 类型时,插入时会自动创建(有序、不重复)的值,所以不需要自己赋值;(支持分布式) 自增(Identity) class Topic { [Column(IsIdentity = true)] public int Id { get; set; } } 约定: 当没有指明主键时,标记自增的成员将成为主键; 唯一键(Unique Key) class AddUniquesInfo { public Guid id { get; set; } [Column(Unique = "uk_phone")] public string phone { get; set; } [Column(Unique = "uk_group_index, uk_group_index22")] public string group { get; set; } [Column(Unique = "uk_group_index")] public int index { get; set; } [Column(Unique = "uk

kafka控制台基本操作命令

断了今生、忘了曾经 提交于 2019-11-29 19:32:27
#创建topic /usr/SFT/kafka-0.11/bin/kafka-topics.sh --zookeeper chdp11:2181 --create --replication-factor 3 --partitions 1 --topic mytp #列出已经创建的topic,实际上就是去zk集群查询数据 /usr/SFT/kafka-0.11/bin/kafka-topics.sh --zookeeper chdp11:2181 --list #删除topic,若未设置delete.topic.enable=true将不会真正删除,而是将对应topic打上deletion标识(mark of deletion) /usr/SFT/kafka-0.11/bin/kafka-topics.sh --zookeeper chdp11:2181 --delete --topic mytp #在控制台启动生产者,将数据写入mytp /usr/SFT/kafka-0.11/bin/kafka-console-producer.sh --broker-list chdp11:9092 --topic mytp #在控制台启动消费者,从mytp消费数据,其会创建一个单独的组。 /usr/SFT/kafka-0.11/bin/kafka-console-consumer.sh -

kafka学习(2)主题 Topic

ε祈祈猫儿з 提交于 2019-11-29 19:26:49
Topic主题: 消息在进入kafka集群时,是以主题进行 数据归纳,既一条消息必须属于一个主题。 在kafka集群中可以有无数个主题。 从生产者的角度来说,他所操作的单位,一般情况下是以主题为单位。从消费者的角度来说,他所操作的单位,也是以主题为单位。 但是,生产者,消费者可以以比主题更精细的单位来操作----》分区,也就是消息的分类。 kafka始终支持多用户写入消息,订阅消息的。生产者和消费者,必须要知道操作的主题。 创建属于自己的主题: 常用命令: 启动kafka Java\kafka_2.11-0.10.0.0>.\bin\windows\kafka-server-start.bat .\config\server.properties windows 下查看主题 D:\Java\kafka_2.11-0.10.0.0\bin\windows>kafka-topics.bat --describe --zookeeper localhost:2181 --topic business_log(主题的名字) 查看主题的content D:\Java\kafka_2.11-0.10.0.0\bin\windows>kafka-console-consumer.bat --zookeeper localhost:2181 --from-beginning --topic

Kafka的个人总结一

笑着哭i 提交于 2019-11-29 19:24:16
Kafka个人解读前篇 Kafka的概述 消息队列的回顾 消息队列 消息队列的好处 消息队列的两种模式 Kafka的基础架构 Kafka架构深入 Kafka工作流程及文件存储机制 Kafka生产者 分区策略 数据可靠性保证 acks参数配置: 故障处理细节 Exactly Once语义(精确一次) Kafka消费者 消费模式 分区分配策略 offset维护 消费者组测试 Kafka的概述 kafka是一个分布式的消息队列,基于发布/订阅模式,主要用于大数据的实时处理领域. 消息队列的回顾 消息队列 传统的消息队列有两种处理方式: 同步处理: 任务提交给队列后,等待完成再进行其他操作 异步处理: 任务提交给队列后,不用等待完成,即可进行其他操作 消息队列的好处 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保他们遵守同样的接口约束 2.可恢复性: 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理 3.缓冲: 有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况 4.灵活性&峰值处理能力: 在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费

个推基于 Apache Pulsar 的优先级队列方案

你离开我真会死。 提交于 2019-11-29 18:52:41
作者:个推平台研发工程师 祥子 一、业务背景 在个推的推送场景中,消息队列在整个系统中占有非常重要的位置。 当 APP 有推送需求的时候, 会向个推发送一条推送命令,接到推送需求后,我们会把APP要求推送消息的用户放入下发队列中,进行消息下发;当同时有多个APP进行消息下发时,难免会出现资源竞争的情况, 因此就产生了优先级队列的需求,在下发资源固定的情况下, 高优先级的用户需要有更多的下发资源。 二、基于 Kafka 的优先级队列方案 针对以上场景,个推基于 Kafka 设计了第一版的优先级队列方案。Kafka 是 LinkedIn 开发的一个高性能、分布式消息系统;Kafka 在个推有非常广泛的应用,如日志收集、在线和离线消息分发等。 架构 在该方案中,个推将优先级统一设定为高、中、低三个级别。具体操作方案如下: 对某个优先级根据 task (单次推送任务)维度,存入不同的 Topic,一个 task 只写入一个 Topic,一个 Topic 可存多个 task; 消费模块根据优先级配额(如 6:3:1),获取不同优先级的消息数,同一优先级轮询获取消息;这样既保证了高优先级用户可以更快地发送消息,又避免了低优先级用户出现没有下发的情况。 Kafka 方案遇到的问题 随着个推业务的不断发展,接入的 APP 数量逐渐增多,第一版的优先级方案也逐渐暴露出一些问题: 当相同优先级的

springBoot -webSocket 基于STOMP协议交互

隐身守侯 提交于 2019-11-29 17:04:27
浅谈WebSocket WebSocket是在HTML5基础上单个TCP连接上进行全双工通讯的协议,只要浏览器和服务器进行一次握手,就可以建立一条快速通道,两者就可以实现数据互传了。说白了,就是打破了传统的http协议的无状态传输(只能浏览器请求,服务端响应),websocket全双工通讯,就是浏览器和服务器进行一次握手,浏览器可以随时给服务器发送信息,服务器也可以随时主动发送信息给浏览器了。对webSocket原理有兴趣的客官,可以自行百度。 2.环境搭建 因为是根据项目的需求来的,所以这里我只介绍在SpringBoot下使用WebSocket的其中一种实现【STOMP协议】。因此整个工程涉及websocket使用的大致框架为SpringBoot+Maven+websocket,其他框架的基础搭建,我这里就不说了,相信各位也都很熟悉,我就直接集成websocket了。 在pox.xml加上对springBoot对WebSocket的支持: <!-- webSocket --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 这样SpringBoot就和WebSocket集成好了

python使用stomp连接activemq

馋奶兔 提交于 2019-11-29 17:01:56
一、安装ActiveMQ服务 1. 当使用windows时,安装参考:https://blog.csdn.net/WuLex/article/details/78323811 启动:运行activemq.bat 2. 当使用linux时,安装参考:https://www.cnblogs.com/andylhc/p/9337628.html 启动:./activemq start 二、python使用stomp连接activemq 安装模块:pip3 install stomp.py (注意是python3) Python脚本如下: # -*- coding: utf-8 -*- """ Created on Thu Jul 19 09:54:08 2018 @author: lihc """ # -*-coding:utf-8-*- import stomp import time queue_name = '/queue/SampleQueue' topic_name = '/topic/SampleTopic' listener_name = 'SampleListener' post=61613 class SampleListener(object): def on_message(self, headers, message): print ('headers: %s'