原创 關於Mysql消息表的設計

PS:看了很多人的設計方案,感覺大體上沒什麼變化;由於消息未讀數量是一個頻繁獲取的值,在不考慮緩存的情況下,可以如下設計   主表:用來在後臺進行管理   附表:用於用戶的操作獲取行爲 注意:羣發消息不要直接發給所有人,做成用戶觸發式

原创 windows系統 安裝OpenOffice(office文檔轉成PDF文件)

摘要:最近在做文件管理系統的時候,需要將office文檔轉成PDF文件,於是想到調用OpenOffice軟件的com組件去處理 1.首先是下載OpenOffice安裝包(官網下載需要翻牆,推薦雲牆,購買流量下載還是蠻快的)    

原创 ImageMagick之PHP進行圖片合併

<?php /** * @param array $files文件組 * @param int $xNum列數量 * @param int $yNum行數量 * @param int $xDistance列間距 * @para

原创 主流消息中間件

ActiveMQ:面對超大規模併發會有很多問題,適用於併發不大的業務(性能不是很好)       KAFKA:只關心吞吐量,強調高性能(消費性可靠性投遞不好)       RocketMq:高吞吐量、高性能(其他都好就是商業版收

原创 RabbitMq安裝

安裝步驟: 下載安裝步驟: rabbitmqctl:詳細服務的控制 rabbitmq-plugins:啓動插件 rabbitmq-sever:啓動服務   查看RabbitMq是否啓動成功:     其他: 當原來的服務沒有卸載

原创 RabbitMq流控

簡述: 流控機制是用來避免消息的發送速率過快而導致服務器難以支撐的情形。內存和磁盤警告相當於全局的流控,一旦觸發會阻塞集羣中所有的Connection,而本節的流程是針對單個Connection的.   原理: 1.Erlang進程之間並

原创 rabbitMq信道(channel)

1.與Rabbitmq Broker建立連接,這連接就是一個TCP連接,也就是connection. 2.建立TCP連接後,客戶端可以創建一個AMQP信道(Channel),每個信道都會被指派一個唯一的ID。信道是建立在Connectio

原创 RabbitMq存儲機制

1.不管是持久化的消息還是非持久化的消息都可以被寫入到磁盤。 2.持久化的消息在到達隊列時就被寫入到磁盤,並且如果可以,持久化的消息也會在內存中保存一份備份,這樣可以提高一定的性能,當內存吃緊的時候會從內存中清除。 3.非持久化的消息一般

原创 Redis的5種基礎數據結構

string(字符串): 1.字符串是Redis最簡單的數據結構,它的內部表示就是一個字符數組。 2.Redis的字符串是動態字符串,是可以修改的字符串,內部結構的實現類似於Java的ArrayList,採用預分配冗餘空間的方式來減少內存

原创 RabbitMq交換器和隊列

注:生產者和消費者都可以聲明一個交換器。如果嘗試聲明一個已經存在的交換器或者隊列,只要聲明的參數完全匹配現存的交換器或隊列,RabbitMq就可以聲明都不做,併成功返回。如果聲明的參數不匹配則會拋出異常。   exchangeDeclar

原创 RabbitMq惰性隊列

    應用場景: 1.需要支持更多的消息存儲 2.消費者由於各種各樣的原因(如消費者下線、宕機或者由於維護而關閉等等)導致長時間不能消費消息而造成堆積時   重要概念: 1.惰性隊列會儘可能地將消息存入磁盤中,消費者消費到對應的消息時

原创 RabbitMq創建生產者和消費者例子

  生產者 package com.ly.liyong.rabbitmq; import com.rabbitmq.client.*; import java.io.IOException; import java.util.Ha

原创 RabbitMq內存以及磁盤警告

內存: 1.當內存使用超過配置的閾值或者磁盤剩餘空間低於配置的閾值時,RabbitMq都會暫時阻塞(block)客戶端的連接(Connection)並停止接收從客戶端發來的消息,以此避免服務崩潰。與此同時,客戶端與服務端的心跳檢測也會失效

原创 windows系統 安裝MongoDB 32位

1.下載地址:鏈接: https://pan.baidu.com/s/1eRWm0JS 密碼: c63k 2.直接進行安裝(可選擇自定義地址) 3.建立data文件例如:D:\MongoDb\data 4.C:\Windows\s

原创 MongoDB之PHP的使用(GridFs)

摘要:最近在做一個文檔管理系統,使用MongoDB存儲二進制數據,也遇到了很多坑,在這裏分享一下 PS:用的新版的MongoDB 一:第一種方法,直接調Driver的方式: 一個簡單上傳例子: classMongoPHP {